Define a new macro: _LIBCPP_HAS_NO_VARIABLE_TEMPLATES and use it. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@232493 91177308-0d34-0410-b5e6-96231b3b80d8 
diff --git a/include/__config b/include/__config index 88ea441..33c386b 100644 --- a/include/__config +++ b/include/__config 
@@ -336,6 +336,10 @@  #define _LIBCPP_HAS_NO_CXX14_CONSTEXPR  #endif   +#if !(__has_feature(cxx_variable_templates)) +#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES +#endif +  #if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L  #if defined(__FreeBSD__)  #define _LIBCPP_HAS_QUICK_EXIT @@ -415,6 +419,8 @@    // No version of GCC supports relaxed constexpr rules  #define _LIBCPP_HAS_NO_CXX14_CONSTEXPR +// GCC 5 will support variable templates +#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES    #define _NOEXCEPT throw()  #define _NOEXCEPT_(x) @@ -486,6 +492,7 @@  #define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER  #define _LIBCPP_HAS_NO_CONSTEXPR  #define _LIBCPP_HAS_NO_CXX14_CONSTEXPR +#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES  #define _LIBCPP_HAS_NO_UNICODE_CHARS  #define _LIBCPP_HAS_NO_DELETED_FUNCTIONS  #define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS @@ -528,6 +535,7 @@  #define _LIBCPP_HAS_NO_NULLPTR  #define _LIBCPP_HAS_NO_UNICODE_CHARS  #define _LIBCPP_HAS_IS_BASE_OF +#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES    #if defined(_AIX)  #define __MULTILOCALE_API 
diff --git a/include/experimental/chrono b/include/experimental/chrono index 738ded8..ca9e5f8 100644 --- a/include/experimental/chrono +++ b/include/experimental/chrono 
@@ -45,12 +45,12 @@    _LIBCPP_BEGIN_NAMESPACE_CHRONO_LFTS   -#if __has_feature(cxx_variable_templates) +#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES    template <class _Rep> _LIBCPP_CONSTEXPR bool treat_as_floating_point_v  = treat_as_floating_point<_Rep>::value;   -#endif /* __has_feature(cxx_variable_templates) */ +#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */    _LIBCPP_END_NAMESPACE_CHRONO_LFTS   
diff --git a/include/experimental/ratio b/include/experimental/ratio index a393cef..a00a253 100644 --- a/include/experimental/ratio +++ b/include/experimental/ratio 
@@ -48,7 +48,7 @@    _LIBCPP_BEGIN_NAMESPACE_LFTS   -#if __has_feature(cxx_variable_templates) +#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES    template <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_equal_v  = ratio_equal<_R1, _R2>::value; @@ -68,7 +68,7 @@  template <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_greater_equal_v  = ratio_greater_equal<_R1, _R2>::value;   -#endif /* __has_feature(cxx_variable_templates) */ +#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */    _LIBCPP_END_NAMESPACE_LFTS   
diff --git a/include/experimental/system_error b/include/experimental/system_error index 9b9ab33..2ec2385 100644 --- a/include/experimental/system_error +++ b/include/experimental/system_error 
@@ -46,7 +46,7 @@    _LIBCPP_BEGIN_NAMESPACE_LFTS   -#if __has_feature(cxx_variable_templates) +#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES    template <class _Tp> _LIBCPP_CONSTEXPR bool is_error_code_enum_v  = is_error_code_enum<_Tp>::value; @@ -54,7 +54,7 @@  template <class _Tp> _LIBCPP_CONSTEXPR bool is_error_condition_enum_v  = is_error_condition_enum<_Tp>::value;   -#endif /* __has_feature(cxx_variable_templates) */ +#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */    _LIBCPP_END_NAMESPACE_LFTS   
diff --git a/include/experimental/type_traits b/include/experimental/type_traits index 35cdada..ae49fc1 100644 --- a/include/experimental/type_traits +++ b/include/experimental/type_traits 
@@ -190,7 +190,7 @@    _LIBCPP_BEGIN_NAMESPACE_LFTS   -#if __has_feature(cxx_variable_templates) +#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES    // C++14 20.10.4.1, primary type categories   @@ -397,7 +397,7 @@  template <class _Tp, class _Up> _LIBCPP_CONSTEXPR bool is_convertible_v  = is_convertible<_Tp, _Up>::value;   -#endif /* __has_feature(cxx_variable_templates) */ +#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */    // 3.3.2, Other type transformations  /*